package com.koi.job.task;

import com.koi.job.service.job.SysJobService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * @author ･ᴗ･
 * @description [KoiJobTimerTaskRunner]
 * 注意：仅支持字符串、数字、布尔值[布尔值如果传递的不是true 或者 false，则默认变为false]进行传递参数。
 */
@Slf4j
@Component
@RequiredArgsConstructor
public class KoiJobTimerTaskRunner implements CommonTimerTaskRunner {

    private final SysJobService jobService;

    /**
     * @description [单个参数，param可以传递参数，通过数据库的job_params]
     */
    @Override
    public void paramAction(String param) {
        // JSONObject jsonObject = JSONUtil.parseObj(param);
        log.info("我是一个paramAction定时任务，正在被执行，参数：{}", param);
    }

    /**
     * @description [无参数]
     */
    @Override
    public void noParamAction() {
        jobService.list().stream().forEach(System.out::println);
        log.info("我是一个noParamAction定时任务，正在被执行");
    }

    /**
     * @description [多参数]
     * @author ･ᴗ･
     */
    @Override
    public void manyParamsAction(String Param1, Integer param2) {
        log.info("我是一个manyParamsAction定时任务，正在被执行，参数：{}，{}", Param1, param2);
    }
}
